// Es6 支持这样，但是鸿蒙不支持
// 鸿蒙 支持interface，
// Es6前端支持 以下两种写法
let person : {name:string,age:number,sex?:'男' | '女'} = {name:'张三', age:11, sex:'男'}

interface person {
    name:string
    age?:number
    sex:'男' | '女'
}

// 调用interface的写法
let pp : person = {name:'张三', age:15, sex:'男'}

type Tperson = {name:string,age:number,sex:'男' | '女'}

// 调用type的写法
let ppp :Tperson = {name:'', age:16, sex:'男'}

// Es6的结构赋值
let { age, sex } = ppp  // 等同于

// let name = ppp.name
// let age = ppp.age
// let sex = ppp.sex

let b = { a: 1, b: 2, c: 3, d: 4, e: 5, f: { ff: 1 }  } // b对象

// let c = b  // c和b是公用一个地址一个对象
let c = { ...b } // 完成b的内容到a的内容- 浅拷贝(只拷贝第一层) - 深拷贝(不论你有多少层 全部拷贝)
// 拷贝之后，改变c的对象值，b的对象值不改变 
// let c = { ...b} 属于只拷贝第一层  f: { ff : 1 } 则不会拷贝,如果c中改变f的对象就会把b的f对象内容改变了